package com.cskaoyan.javase.array._5vp;

/**
 * 对于可变参数的语法:
 *  [修饰符列表] 返回值类型 方法名 (形式参数列表,数据类型... 变量名){
 *    //方法体
 *  }
 * 有以下使用注意事项:
 *      1.可变参数写在形参列表中,必须是最后一个参数,不能放在开头或中间.
 *      2.对于可变参数,建议的书写方式"数据类型... 变量名"
 *          快捷键 ctrl + alt + L 格式化代码
 *      3.一个方法最多只有一个可变参数
 *      4.调用方法时，如果有一个固定参数的方法匹配的同时，也可以与可变参数的方法匹配，则优先选择固定参数的方法。(就近原则)
 *      5.调用方法时，如果出现两个可变参数的方法都能匹配，则报错，这两个方法都无法调用了。
 * 注：一般来说要避免可变参数方法，发生方法重载，避免导致方法调用失效情况出现。
 *
 * @since 10:25
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo2 {
    public static void main(String[] args) {
        // Ambiguous method call: both 'Demo2._3test(int...)' and 'Demo2._3test(int, int...)' match
        test(1, 2);
    }

    public static void test(int... var) { }
    // public statics void _3test(int a,int... var) { }
    public static void test(double a,int... var) { }

    // public statics void _3test(int num1, int num2) { }
}
